package MonthGame.MAC;

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        int b = s.nextInt();
        int k = 0;
        int ii = 1;
        for(int i=1;i<Integer.MAX_VALUE;i++){
            int temp = i+i*(i-1)/2;
            k++;
            if(temp==a+b) break;
            else if(temp>a+b){
                ii = 0;
                break;
            }
        }
        if(ii==1){
            System.out.println("YES");
            System.out.println(k);
            int [] temp = new int[k+1];
            Arrays.fill(temp,1);
            int m = 0;
            int index = k;
            int tempa = a;
            while(tempa!=0){
                if(tempa>=index){
                    tempa-=index;
                    temp[index] = 0;
                    index--;
                    m++;
                }else if(tempa<index){
                    temp[tempa] = 0;
                    tempa = 0;
                    m++;
                }
            }
            System.out.println(m);
            for(int i=k;i>=0;i--){
                if(temp[i]==0) System.out.print(i+" ");
            }
        }else System.out.print("NO");
    }
}
